# Utilização do wpa_supplicant

## O que é o wpa_supplicant?

O wpa\_supplicant é uma ferramenta de linha de comando utilizada para se
conectar a redes WIFI sem fio, normalmente ele já vem instalado no Debian e é
usado como backend do NetworkManager(o famoso gerenciador de redes do linux
que suporta plugins), o uso do wpa\_supplicant não é nada trivial, é
relativamente simples e para usa-lo, basta ter um cliente DHCP instalado(no
debian já vem um) e para facilitar a criação de arquivos de configuração, o
wpa\_passphrase é bem útil, agora vamos ao uso da ferramenta!


### Obtendo o nome da placa de rede sem fio

Para fazer isso você tem duas opções: Usar o 'ip' ou as ferramentas if\* de
rede.

#### Com o 'ip':

Abra um terminal(ou a interface de linha de comandos da distro) e
digite o seguinte comando:

```bash
ip addr | grep -E ' ([a-zA-Z0-9]+): '
```

Com isso você vai ver os nomes dos dispositivos de rede disponiveis,
normalmente os de wifi começam com 'wlan' ou 'wlp' no meu caso é wlp3s0.


#### Com o ifconfig:

Com o terminal aberto digite o seguinte comando:

```bash
ifconfig | grep -Eo '^[a-zA-Z0-9]+'
```

Assim como no 'ip' ele ira mostrar as interfaces disponiveis(só que mais limpo,
exbindo somente os nomes das interfaces), agora vamos começar a usar o
wpa\_supplicant para conectar na rede sem fio!


## Conectando a uma rede qualquer

Antes de tentar fazer uma conexão é preciso criar um arquivo onde vai ser salvo
a senha e o nome da rede a qual queremos conectar, como dito antes, o wpa\_passphrase
é muito útil nessa hora mas não é grande coisa, da para criar o arquivo na
mão usando um editor qualuer como o nano ou vim, para criar o arquivo usando a 
ferramenta pronta use o comando:

```bash
wpa_passphrase 'Nome Da Rede' 'SenhaDela' > rede.conf
```

Isso ira criar um arquivo de configuração com um conteúdo parecido com esse:

```text
network={
	ssid="NomeDaRede"
	#psk="SenhaDela"
	psk=cc3c41bb4541fd2f9214394cf104f9f91b0f929283af253b693289dc2c747264
}
```

Ele não indica qual o tipo de criptografia usado para fazer a conexão mas indica
a senha da rede, isso acontece porque o wpa\_supplicant consegue identificar 
esse tipo de coisa em tempo de execução, você pode comentar a quarta linha e
descomentar a terceira para poder alterar a senha manualmente, agora com seu
arquivo de configuração em mãos nós vamos conectar a essa rede, para isso
use o seguinte comando como root:

```bash
sudo wpa_supplicant -Dnl80211 \ # Nome do driver de rede usado para o dispositivo
	-iwlp3s0 \ # A interface do dispositivo obtida anteriormente
	-c./rede.conf  # Arquivo de configuração criar no passo anterior
```

Se aparecer uma última linha escrito 'CTRL-EVENT-CONNECTED' é porque você
agora esta conectado a rede, porem, ainda não da para usar, isso é devido a
falta de um endereço IP na rede local, e isso é feito utilizando um cliente
DHCP, use o seguinte comando para obter um endereço na rede:

```bash
sudo dhclient
```

E depois é só conferir se você obteve um endereço na rede local usando o 'ip 
addr', caso esteja com um IPv4 a internet já vai estar funcionando no seu PC.

Bom, esse foi artigo de hoje(28/09/21) espero que tenha gostado e ate a
proxima.
